1. Technical Field
The present invention relates to storage controllers and, in particular, to redundant arrays of independent disks. Still more particularly, the present invention provides a method, apparatus, and program for serial port initialization on storage controllers.
2. Description of the Related Art
Redundant array of independent disks (RAID) is a disk subsystem that is used to increase performance and provide fault tolerance. RAID is a set of two or more ordinary hard disks and a specialized disk controller, referred to as a RAID controller, that contains the RAID functionality. RAID can also be implemented via software only, but with less performance, especially when rebuilding data after a failure.
RAID controller typically include a serial port for communication with an external device, such as a laptop computer or other maintenance device. An operator may connect an external device to the serial port of a RAID controller for maintenance, monitoring, or configuration. Both the controller and the external device have serial port parameter settings, such as, for example, baud rate, data bits, stop bits, parity, and flow control. The parameter settings must be synchronized for communication between the device and the controller to be effective. The controller typically only supports setting the baud rate of the serial port and no other parameter settings.
However, several problems exist for controllers with serial port communication. There are currently no default serial port parameters set for a controller's serial port during boot code initialization. When the controller downloads non-volatile static random access memory (NVSRAM) code, the controller may not be responsive for serial port communication. Also, the controller may not be responsive for serial port communication after swapping one of the controllers with a foreign controller and auto-code synchronization (ACS) has been completed.
Serial port initialization on RAID controllers poses many problems as port parameters are typically set by invoking a <BREAK> key sequence on the serial console. By repeating the break sequence, a user may cycle through baud rate values for the serial port. However, the user may not know how many times the break sequence was invoked and, thus, may not know what baud rate is set. The user may also miss the intended value and must restart the break key sequence. This solution for setting serial port parameters is non-intuitive and potentially frustrating.